package client;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;


public class MaVue extends JFrame {
	
/***************** Définitions ****************************/
	//Panel
	  private JPanel allConnexion = new JPanel();
	  private JPanel admin = new JPanel();
	  private JPanel client = new JPanel();
	  private JPanel contenuUser = new JPanel();
	  private JPanel action = new JPanel();
	  private JPanel gauche = new JPanel();
	  private JPanel droite = new JPanel();
	  private JPanel docu = new JPanel();
	  private JPanel classe = new JPanel();
	  private JPanel attribut = new JPanel();
	  private JPanel user = new JPanel();

	   
	  private JScrollPane docuPanel;
	  private JScrollPane classePanel;
	  private JScrollPane attributPanel;
	  private JScrollPane userPanel;
	  
	  //Label
	  private JTextField serveurIpTextField = new JTextField("127.0.0.1");
	  private JLabel serveurLabel = new JLabel("Serveur");
	  private JTextField loginTextField = new JTextField();
	  private JLabel usernameLabel = new JLabel("Login");
	  private JLabel docuLabel = new JLabel("Mes Documents");
	  private JLabel classeLabel = new JLabel("Mes Classes");
	  private JLabel attributLabel = new JLabel("Caractéristiques");
	  private JLabel userLabel = new JLabel("Utilisateurs");
	  
	  //private JLabel estConnecteLabel = new JLabel("Connexion établie !");

	  //Mes Boutons
	  private JButton boutonConnexion = new JButton();

	  //Barre de menu
	  JMenuBar menuBar = new JMenuBar();
	  
	  //Mes Images
	  private Icon loginIcon = new ImageIcon(getClass().getResource("/connexion.jpg"));
	  private ImageIcon img = new ImageIcon(getClass().getResource("/icone1.jpg"));
	  private ImageIcon error = new ImageIcon(getClass().getResource("/error2.jpg"));
	  
	    
	  //Erreurs
	  private JOptionPane erreur = new JOptionPane();
	  private JOptionPane ajoutUser = new JOptionPane();
	  private JOptionPane modifUser = new JOptionPane();
	  private JOptionPane supprimeUser = new JOptionPane();
	  
	  //Liste des documents, classe
	  private Vector mesDocuments = new Vector();
	  private Vector mesClasses = new Vector();
	  private Vector mesAttributs = new Vector();
	  private Vector mesUsers = new Vector();
	  
	  
	  //JList qui implémenteront les différents Vector
	  private JList maListeDoc;
	  private JList maListeClasse;
	  private JList maListeAttribut;
	  private JList maListeUsers;
	  private int listevide = 0;
	  
	  //Controleur
	  private MonControleur jeTeControle = new MonControleur();
	  
	  //Modele
	   private MonModele jeSuisTonModele = new MonModele();
  
/******************** Connexion ******************************/
	  public MaVue(){
		  this.setTitle("Connexion");
		  this.setSize(300, 175);
		  this.setIconImage(img.getImage());
		  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		  this.setLocationRelativeTo(null);
	
		  initConnexion();
	
	  }
	    
	  private void initConnexion(){
			
		    allConnexion.setLayout(new FlowLayout());
		    
		    //Ajout des actions sur les bouton (clic + entrer) et ajout d'une image pour le bouton
		    boutonConnexion.addActionListener(new ConnexionListener());
		    this.getRootPane().setDefaultButton(boutonConnexion);
		    boutonConnexion.setIcon(loginIcon);
		    boutonConnexion.setPreferredSize(new Dimension(121, 33));
		    
		    //modification du champs du login
		    Font police = new Font("Arial", Font.BOLD, 14);
		    Font police2 = new Font("Arial", Font.BOLD, 12);
		    loginTextField.setFont(police);
		    loginTextField.setPreferredSize(new Dimension(150, 30));
		    serveurIpTextField.setFont(police2);
		    serveurIpTextField.setPreferredSize(new Dimension(110, 23));
		    
		    
		    JPanel monServeur = new JPanel();
		    monServeur.add(serveurLabel);
		    monServeur.add(serveurIpTextField);
		    //ajout au panel de login des champs username + login
		    JPanel login = new JPanel();
		    login.add(usernameLabel);
		    login.add(loginTextField);
		    
		    
		    
		    
		    allConnexion.add(login);
		    allConnexion.add(monServeur);
		    allConnexion.add(boutonConnexion);
		    this.setContentPane(allConnexion);
		    this.setVisible(true);
		    this.setResizable(false);
			 
	  }    
	  class ConnexionListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				String StrRegEx="^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$";
				
				if(!serveurIpTextField.getText().matches(StrRegEx) || !loginTextField.getText().isEmpty()){
					jeTeControle.connexion(serveurIpTextField.getText(), loginTextField.getText());
					//setMonModele(jeTeControle.getTonModele());
					if(jeSuisTonModele.getUser().getUid().equals("0") || jeSuisTonModele.getUser().getName().isEmpty()){
						erreur.showMessageDialog(null, "Login incorrect !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
					}
				}
				else{
					erreur.showMessageDialog(null, "Login ou adresse du serveur incorrect !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
				
			}
		}
	  }
/*********************** EST Connecté *****************************/	  
	  
	  public void maNouvelleVueClient(){
		System.out.println("UID Admin : "+jeSuisTonModele.getUser().getUid() );
		this.setTitle("Connecté en "+ jeSuisTonModele.getUser().getName());
		this.setSize(800,600);
		this.setIconImage(img.getImage());
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		
		EstConnecteClient();
	  }
	  
	  public void maNouvelleVueAdmin(){
		  	System.out.println("UID Admin : "+jeSuisTonModele.getUser().getUid() );
			this.setTitle("Connecté en "+ jeSuisTonModele.getUser().getName());
			this.setSize(800,600);
			this.setIconImage(img.getImage());
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setLocationRelativeTo(null);
			EstConnecteAdmin();
		  }
	  

	  private void EstConnecteAdmin(){
		  	admin.setLayout(new BorderLayout());
	  		contenuUser.setLayout(new GridLayout(1,2));
	  		action.setLayout(new BorderLayout());
	  		docu.setLayout(new BorderLayout());
	  		classe.setLayout(new BorderLayout());
	  		attribut.setLayout(new BorderLayout());
	  		user.setLayout(new BorderLayout());
	  		
	  		docu.add(docuLabel, BorderLayout.NORTH);
	  		classe.add(classeLabel, BorderLayout.NORTH);
	  		attribut.add(attributLabel, BorderLayout.NORTH);
	  		user.add(userLabel, BorderLayout.NORTH);

/********************** Barre de menu *******************************************/
	  		//Téléchargement d'un document
	  		JMenuItem menu1= new JMenuItem("Télécharger...");
	  		menu1.addActionListener(new TelechargerDocListener());

	  		
	  		//Modification d'un attribut d'un doc, une classe
	  		JMenu menu2= new JMenu("Ajouter...");
	  		JMenuItem doc2 = new JMenuItem("Document");
	  		doc2.addActionListener(new EnvoyerDocListener());
			JMenuItem classe2 = new JMenuItem("Classe");
			classe2.addActionListener(new CreerClasseListener());
	  		JMenuItem attribut2 = new JMenuItem("Attribut");
	  		attribut2.addActionListener(new AjouterAttributListener());
	  		//JMenuItem permission2 = new JMenuItem("Permission");
	  		//permission2.addActionListener(new AjouterPermissionListener());
	  		JMenuItem user2 = new JMenuItem("Utilisateur");
	  		user2.addActionListener(new AjouterUserListener());
	  		menu2.add(doc2);
			menu2.add(classe2);
			menu2.add(attribut2);
			//menu2.add(permission2);
			menu2.add(user2);
	  		
			
			//Copier/Coller une document
			JMenuItem menu3 = new JMenuItem("Copier");
			menu3.addActionListener(new CopierCollerListener());
			
			
			//Modification d'un attribut d'un doc, une classe
			/*JMenu menu3= new JMenu("Modifier...");
			JMenuItem doc3 = new JMenuItem("Document");
			doc3.addActionListener(new ModifierDocListener());
	  		JMenuItem classe3 = new JMenuItem("Classe");
	  		copier3.addActionListener(new ModifierClasseListener());


			menu3.add(doc3);
			menu3.add(classe3);
*/
			
			
	  		//Supprimer un document, classe, attribut d'un doc, attribut d'une classe
	  		JMenu menu4= new JMenu("Supprimer...");
	  		JMenuItem doc4 = new JMenuItem("Document");
	  		doc4.addActionListener(new SupprimerDocListener());
	  		JMenuItem classe4 = new JMenuItem("Classe");
	  		classe4.addActionListener(new SupprimerClasseListener());
	  		JMenuItem attribut41 = new JMenuItem("Attribut Document");
	  		attribut41.addActionListener(new SupprimerAttributDocListener());
	  		JMenuItem attribut42 = new JMenuItem("Attribut Classe");
	  		attribut42.addActionListener(new SupprimerAttributClasseListener());
	  		//JMenuItem permission4 = new JMenuItem("Permission");
	  		//permission4.addActionListener(new SupprimerPermissionListener());
	  		JMenuItem user4 = new JMenuItem("Utilisateur");
	  		user4.addActionListener(new SupprimerUserListener());
	  		menu4.add(doc4);
			menu4.add(classe4);
			menu4.add(attribut41);
			menu4.add(attribut42);
			//menu4.add(permission4);
			menu4.add(user4);
	  		
			//Déconnexion
			JMenuItem deconnexion = new JMenuItem("Déconnexion");
			deconnexion.addActionListener(new DeconnexionListener());
			
	  		menuBar.add(menu1);
	  		menuBar.add(menu2);
	  		menuBar.add(menu4);
	  		menuBar.add(menu3);
	  		menuBar.add(deconnexion);
	

	  		action.add(menuBar, BorderLayout.WEST);

	  		
/************************ Fenetres centrales ******************************/			
	  		//Configuration du panel de la liste des documents
			//Récupération des noms des documents
			//Création de la liste (sélectionnable)
	  		jeSuisTonModele.setDoc(jeTeControle.listeAllDoc());
			maListeDoc = new JList(jeSuisTonModele.getDoc());
			docuPanel = new JScrollPane(maListeDoc);
			maListeDoc.addListSelectionListener(new GetDocInformationListener());
			
			//Configuration du panel de la liste des classes
			//Récupération des noms des documents
			//Création de la liste (sélectionnable)
			jeSuisTonModele.setClasse(jeTeControle.listeAllClasse());
			maListeClasse = new JList(jeSuisTonModele.getClasse());
			classePanel = new JScrollPane(maListeClasse);
			maListeClasse.addListSelectionListener(new GetClasseInformationListener());
			
			//Configuration du Panel regroupant les attributs
			//Création de la liste (sélectionnable)
			attributPanel = new JScrollPane(maListeAttribut);
			
			//Création de la liste de Users
			jeSuisTonModele.setAllUsers(jeTeControle.listeAllUsers());
			maListeUsers = new JList(jeSuisTonModele.getAllUsers());
			userPanel = new JScrollPane(maListeUsers);


			//Ajout de la liste des document et de la liste des classe
			gauche.setLayout(new GridLayout(2,1));
			docu.add(docuPanel,BorderLayout.CENTER);
			gauche.add(docu);
			classe.add(classePanel, BorderLayout.CENTER);
			gauche.add(classe);
			
			droite.setLayout(new GridLayout(2,1));
			attribut.add(attributPanel, BorderLayout.CENTER);
			droite.add(attribut);
			user.add(userPanel, BorderLayout.CENTER);
			droite.add(user);
			
			//gauche.add(attribut);
			
			contenuUser.add(gauche);
			contenuUser.add(droite);
			admin.add(action, BorderLayout.NORTH);
			admin.add(contenuUser, BorderLayout.CENTER);
			
			
			this.setContentPane(admin);
			this.setVisible(true);
		  
	  }
	  
	  private void EstConnecteClient(){
			
	  		client.setLayout(new BorderLayout());
	  		contenuUser.setLayout(new GridLayout(1,2));
	  		action.setLayout(new BorderLayout());
	  		docu.setLayout(new BorderLayout());
	  		classe.setLayout(new BorderLayout());
	  		attribut.setLayout(new BorderLayout());
	  		
	  		docu.add(docuLabel, BorderLayout.NORTH);
	  		classe.add(classeLabel, BorderLayout.NORTH);
	  		attribut.add(attributLabel, BorderLayout.NORTH);
	  		

/********************** Barre de menu *******************************************/
	  		//Téléchargement d'un document
	  		JMenuItem menu1= new JMenuItem("Télécharger...");
	  		menu1.addActionListener(new TelechargerDocListener());


	  		
	  		//Ajout d'un attribut d'un doc, une classe
	  		JMenu menu2= new JMenu("Ajouter...");
	  		JMenuItem doc2 = new JMenuItem("Document");
	  		doc2.addActionListener(new EnvoyerDocListener());
			JMenuItem classe2 = new JMenuItem("Classe");
			classe2.addActionListener(new CreerClasseListener());
	  		JMenuItem attribut2 = new JMenuItem("Attribut");
	  		attribut2.addActionListener(new AjouterAttributListener());
	  		menu2.add(doc2);
			menu2.add(classe2);
			menu2.add(attribut2);
	  		
			
			//Modification d'un attribut d'un doc, une classe
			/*JMenu menu3= new JMenu("Modifier...");
			JMenuItem doc3 = new JMenuItem("Document");
			doc3.addActionListener(new ModifierDocListener());
	  		JMenuItem classe3 = new JMenuItem("Classe");
	  		classe3.addActionListener(new ModifierClasseListener());
			menu3.add(doc3);
			menu3.add(classe3);
			*/
			
	  		//Supprimer un document, classe, attribut d'un doc, attribut d'une classe
	  		JMenu menu4= new JMenu("Supprimer...");
	  		JMenuItem doc4 = new JMenuItem("Document");
	  		doc4.addActionListener(new SupprimerDocListener());
	  		JMenuItem attribut41 = new JMenuItem("Attribut Document");
	  		attribut41.addActionListener(new SupprimerAttributDocListener());
	  		
	  		menu4.add(doc4);
			menu4.add(attribut41);

	  		
			//Déconnexion
			JMenuItem deconnexion = new JMenuItem("Déconnexion");
			deconnexion.addActionListener(new DeconnexionListener());
			
	  		menuBar.add(menu1);
	  		menuBar.add(menu2);
	  		menuBar.add(menu4);
	  		menuBar.add(deconnexion);
	  		
	  		action.add(menuBar, BorderLayout.WEST);
			
/************************ Fenetres centrales ******************************/			
	  		//Configuration du panel de la liste des documents
			//Récupération des noms des documents
			//Création de la liste (sélectionnable)
	  		jeSuisTonModele.setDoc(jeTeControle.listeAllDoc());
			maListeDoc = new JList(jeSuisTonModele.getDoc());
			docuPanel = new JScrollPane(maListeDoc);
			maListeDoc.addListSelectionListener(new GetDocInformationListener());
			
			//Configuration du panel de la liste des classes
			//Récupération des noms des documents
			//Création de la liste (sélectionnable)
			jeSuisTonModele.setClasse(jeTeControle.listeAllClasse());
			maListeClasse = new JList(jeSuisTonModele.getClasse());
			classePanel = new JScrollPane(maListeClasse);
			maListeClasse.addListSelectionListener(new GetClasseInformationListener());
			
			//Configuration du Panel regroupant les attributs
			//Création de la liste (sélectionnable)
			attributPanel = new JScrollPane(maListeAttribut);
			
			//Ajout de la liste des document et de la liste des classe
			gauche.setLayout(new GridLayout(2,1));
			docu.add(docuPanel,BorderLayout.CENTER);
			gauche.add(docu);
			classe.add(classePanel, BorderLayout.CENTER);
			gauche.add(classe);
			attribut.add(attributPanel, BorderLayout.CENTER);
			//gauche.add(attribut);
			
			contenuUser.add(gauche);
			contenuUser.add(attribut);
			client.add(action, BorderLayout.NORTH);
			client.add(contenuUser, BorderLayout.CENTER);
			
			
			this.setContentPane(client);
			this.setVisible(true);
		  
			 
	  } 
	  
	
/******************************* CONTROLE des Boutons ********************************/
	
/************************* GET INFO *********************************/
	  	//Information du doc sélectionné
	  	class GetDocInformationListener implements  ListSelectionListener {
			public void valueChanged(ListSelectionEvent arg0) {
				if(listevide!=0){
					maListeClasse.clearSelection();
					maListeAttribut.clearSelection();
				}
				listevide++;
				jeSuisTonModele.setAttributDocCourant(jeTeControle.getInfoDoc((String)maListeDoc.getSelectedValue()));
				maListeAttribut = new JList(jeSuisTonModele.getAttributDocCourant());
				attributPanel.setViewportView(maListeAttribut);
			}
		}
	  	
	  	//Information de la classe sélectionnée
	  	class GetClasseInformationListener implements  ListSelectionListener {
			public void valueChanged(ListSelectionEvent arg0) {
				if(listevide!=0){
					maListeDoc.clearSelection();
					maListeAttribut.clearSelection();
				}
				listevide++;
				System.out.println("getclasselistener : " + jeSuisTonModele.getUser().getUid());
				jeSuisTonModele.setAttributClasseCourante(
								jeTeControle.getInfoClasse(
								(String)maListeClasse.getSelectedValue()));
				
				maListeAttribut = new JList(jeSuisTonModele.getAttributClasseCourante());
				attributPanel.setViewportView(maListeAttribut);
			}
		}
	  	
	  	
	  	
/********************** TELECHARGER FICHIER ****************************/
	  	class TelechargerDocListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				if((String)maListeDoc.getSelectedValue()!=null)
					jeTeControle.monTelechargementFichier((String)maListeDoc.getSelectedValue());
				else
					erreur.showMessageDialog(null, "Aucun document séléctionné !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
				//String fichier = MaVue.ChoixEnvoyer();
				//System.out.println(fichier);
				
			}
		}
	  	
/************************ AJOUTER DOC/CLASSE/ATTRIBUTS/PERMISSION ***************************/	  	
	  	class EnvoyerDocListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				try{
					String classeTemp = (String)maListeClasse.getSelectedValue();
					System.out.println("classeTemp : " + classeTemp);
					
					if(!classeTemp.isEmpty()){
						MesInformations envoiDoc = new MesInformations(jeSuisTonModele.getAttributClasseCourante(), jeSuisTonModele.getAttributClasseCourante().size()-1);
						if(!envoiDoc.isOK()){
							jeTeControle.monEnvoiFichier(classeTemp, envoiDoc.getAttr());
							jeSuisTonModele.setDoc(jeTeControle.listeAllDoc());
							maListeDoc = new JList(jeSuisTonModele.getDoc());
							docuPanel.setViewportView(maListeDoc);
							maListeDoc.addListSelectionListener(new GetDocInformationListener());
						}	
				}
				}catch(Exception e){
					erreur.showMessageDialog(null, "Envoi annulé ! Sélectionnez une classe ou validez le document !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
				}
				
			}
		}
	  	
	  	class CreerClasseListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				MesInformations envoiClasse = new MesInformations(1);
				if(!envoiClasse.isOK()){
					jeTeControle.addClasse(envoiClasse.getNom(), envoiClasse.getTypee(),envoiClasse.getAttr(), envoiClasse.getCompteur());
					jeSuisTonModele.setClasse(jeTeControle.listeAllClasse());
					maListeClasse = new JList(jeSuisTonModele.getClasse());
					classePanel.setViewportView(maListeClasse);
					maListeClasse.addListSelectionListener(new GetClasseInformationListener());
				}
			}
		}
	  	
	  	class AjouterAttributListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				
				
			}
		}
	  	
	  	class AjouterUserListener implements ActionListener {
			
			public void actionPerformed(ActionEvent arg0){
				String newUser = JOptionPane.showInputDialog(null, "Login :", "Nouvel utilisateur", JOptionPane.QUESTION_MESSAGE);
				System.out.println("mon user : "+newUser);
				try{
					if(!newUser.equals(null) || !newUser.isEmpty()){
						jeTeControle.ajoutUtilisateur(newUser);
						jeSuisTonModele.setAllUsers(jeTeControle.listeAllUsers());
						maListeUsers = new JList(jeSuisTonModele.getAllUsers());
						userPanel.setViewportView(maListeUsers);
					}
				}catch(Exception e){
				}
				
			}
		}

/********************** MODIFIER Doc (valeur attribut), classe (construction de la classe), permissions *****************************/

	  	class CopierCollerListener implements ActionListener{
	  		
	  		public void actionPerformed(ActionEvent arg0){
	  			
	  			try{
	  				String oldDoc = (String) maListeDoc.getSelectedValue();
	  				if(!oldDoc.isEmpty()){
			  			String newDoc = JOptionPane.showInputDialog(null, "Nouveau document:", "Nouveau document", JOptionPane.QUESTION_MESSAGE);
			  			System.out.println("mon user : "+newDoc);
			  			String newClasse = JOptionPane.showInputDialog(null, "Spécifiez la classe:", "Classe", JOptionPane.QUESTION_MESSAGE);
			  			Vector classeV= jeTeControle.getCaractClasse(newClasse);
			  			if(jeSuisTonModele.getClasse().contains(newClasse) || !newDoc.equals(null) || !newDoc.isEmpty() || !newClasse.equals(null) || !newClasse.isEmpty()){
				  			MesInformations envoiDoc = new MesInformations(classeV, classeV.size()-1);
							jeTeControle.copierDoc(oldDoc,newDoc, newClasse, envoiDoc.getAttr());
							jeSuisTonModele.setDoc(jeTeControle.listeAllDoc());
							maListeDoc = new JList(jeSuisTonModele.getDoc());
							docuPanel.setViewportView(maListeDoc);
							maListeDoc.addListSelectionListener(new GetDocInformationListener());
			  			}
			  			else
			  				erreur.showMessageDialog(null, "Copie annulée ! Sélectionnez une classe et des valeurs correctes !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
	  				}
		  			else
		  				erreur.showMessageDialog(null, "Copie annulée ! Sélectionnez une classe et des valeurs correctes !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
				}catch(Exception e){
						erreur.showMessageDialog(null, "Copie annulée ! Sélectionnez une classe et des valeurs correctes !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
					
		  		}
	  		}
	  	}
  	
	  	class ModifierDocListener implements ActionListener {
	
	  		public void actionPerformed(ActionEvent arg0){
		
		
	  		}
	  	}	
	  	
	  	class ModifierClasseListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
		
		
	  		}
	  	}	

/******************** SUPPRIMER Doc, classe, attribut, permission (fichier) ***********************/
	  	class SupprimerDocListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
				if((String)maListeDoc.getSelectedValue()!=null){
					jeTeControle.supprimerDoc((String)maListeDoc.getSelectedValue());
					jeSuisTonModele.setDoc(jeTeControle.listeAllDoc());
					maListeDoc = new JList(jeSuisTonModele.getDoc());
					docuPanel.setViewportView(maListeDoc);
					maListeDoc.addListSelectionListener(new GetDocInformationListener());
					maListeAttribut = new JList();
					attributPanel.setViewportView(maListeAttribut);
				}
				else
					erreur.showMessageDialog(null, "Aucun document sélectionné !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
		
	  		}
	  	}	
	  	
	  	class SupprimerClasseListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
	  			if((String)maListeClasse.getSelectedValue()!=null){
					jeTeControle.supprimerClasse((String)maListeClasse.getSelectedValue());
					jeSuisTonModele.setClasse(jeTeControle.listeAllClasse());
					maListeClasse = new JList(jeSuisTonModele.getClasse());
					classePanel.setViewportView(maListeClasse);
					maListeClasse.addListSelectionListener(new GetClasseInformationListener());
					maListeAttribut = new JList();
					attributPanel.setViewportView(maListeAttribut);
				}
				else
					erreur.showMessageDialog(null, "Aucune classe sélectionnée !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);
		
	  		}
	  	}	
	  	
	  	class SupprimerAttributDocListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
		
		
	  		}
	  	}	
	  	
	  	class SupprimerAttributClasseListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
		
		
	  		}
	  	}
	  	
	  	class SupprimerUserListener implements ActionListener {
	  		
	  		public void actionPerformed(ActionEvent arg0){
				if((String)maListeUsers.getSelectedValue()!=null){
					jeTeControle.supprimerUtilisateur((String)maListeUsers.getSelectedValue());
					jeSuisTonModele.setAllUsers(jeTeControle.listeAllUsers());
					maListeUsers = new JList(jeSuisTonModele.getAllUsers());
					userPanel.setViewportView(maListeUsers);
				}
				else
					erreur.showMessageDialog(null, "Aucun utilisateur sélectionné !", "C'est raté !",JOptionPane.ERROR_MESSAGE, error);

		
	  		}
	  	}	



/****************** DECONNEXION *********************************************/
	  	class DeconnexionListener implements ActionListener {
	  		public void actionPerformed(ActionEvent arg0){
	  			dispose();		
	  			jeTeControle.deconnexion();
	  		}
	  	}	
	  	
/********************** MUTATEUR *******************************/
	  	public MonModele getMonModele(){
	  		return jeSuisTonModele;
	  	}
	  	public void setMonModele(MonModele modif){
	  		this.jeSuisTonModele=modif;
	  	}
	  
}

